Goto

Collaborating Authors

 separation logic


Non-Termination Proving: 100 Million LoC and Beyond

Vanegue, Julien, Villard, Jules, O'Hearn, Peter, Raad, Azalea

arXiv.org Artificial Intelligence

We report on our tool, Pulse Infinite, that uses proof techniques to show non-termination (divergence) in large programs. Pulse Infinite works compositionally and under-approximately: the former supports scale, and the latter ensures soundness for proving divergence. Prior work focused on small benchmarks in the tens or hundreds of lines of code (LoC), and scale limits their practicality: a single company may have tens of millions, or even hundreds of millions of LoC or more. We report on applying Pulse Infinite to over a hundred million lines of open-source and proprietary software written in C, C++, and Hack, identifying over 30 previously unknown issues, establishing a new state of the art for detecting divergence in real-world codebases.


Reasoning Under Threat: Symbolic and Neural Techniques for Cybersecurity Verification

Veronica, Sarah

arXiv.org Artificial Intelligence

Cybersecurity demands rigorous and scalable techniques to ensure system correctness, robustness, and resilience against evolving threats. Automated reasoning, encompassing formal logic, theorem proving, model checking, and symbolic analysis, provides a foundational framework for verifying security properties across diverse domains such as access control, protocol design, vulnerability detection, and adversarial modeling. This survey presents a comprehensive overview of the role of automated reasoning in cybersecurity, analyzing how logical systems, including temporal, deontic, and epistemic logics are employed to formalize and verify security guarantees. We examine SOTA tools and frameworks, explore integrations with AI for neural-symbolic reasoning, and highlight critical research gaps, particularly in scalability, compositionality, and multi-layered security modeling. The paper concludes with a set of well-grounded future research directions, aiming to foster the development of secure systems through formal, automated, and explainable reasoning techniques.


A separation logic for sequences in pointer programs and its decidability

Cao, Tianyue, Zhang, Bowen, Jin, Zhao, Cao, Yongzhi, Wang, Hanpin

arXiv.org Artificial Intelligence

Separation logic and its variants can describe various properties on pointer programs. However, when it comes to properties on sequences, one may find it hard to formalize. To deal with properties on variable-length sequences and multilevel data structures, we propose sequence-heap separation logic which integrates sequences into logical reasoning on heap-manipulated programs. Quantifiers over sequence variables and singleton heap storing sequence (sequence singleton heap) are new members in our logic. Further, we study the satisfiability problem of two fragments. The propositional fragment of sequence-heap separation logic is decidable, and the fragment with 2 alternations on program variables and 1 alternation on sequence variables is undecidable. In addition, we explore boundaries between decidable and undecidable fragments of the logic with prenex normal form.


Machine Learning for Detecting Code Bugs – Towards Data Science

#artificialintelligence

Just a few days ago, a team of Facebook engineers received the ACM SIGPLAN Most Influential POPL Paper Award which is one of most the covered awards in the machine learning research community. The award was based on the paper "Compositional Shape Analysis by Means of Bi-abduction", which describes some of the science behind one of my favorite machine learning applications of recent years: Project Infer. The goal of Project Infer seems extracted from an sci-fi movie: detecting bugs in mobile app code before it ships. Bugs in mobile apps are very costly. Discovering an error after a mobile app has been distributed to thousands of mobile devices is the nightmare facing any mobile developer.